package com.implemetsystem.prestacontas.geral.manager;

import java.io.Serializable;
//import java.util.Collection;
import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Named;

//import org.primefaces.model.DualListModel;

import com.implementsystem.prestacontas.geral.exception.ValidacaoException;
import com.implementsystem.prestacontas.municipios.entity.Municipio;
import com.implementsystem.prestacontas.municipios.session.MunicipioSession;
import com.implementsystem.prestacontas.usuario.entity.Usuario;
import com.implementsystem.prestacontas.usuario.session.UsuarioSession;
import com.implemetsystem.prestacontas.geral.utils.FacesUtil;

@Named(value="usuarioManager")
@ConversationScoped
public class UsuarioManager extends GenericManager implements Serializable {

	private static final long serialVersionUID = -8747966431548109087L;
	
	@EJB
	private UsuarioSession session;
	
	@EJB
	private MunicipioSession municSession;
	
	
	private List<Municipio> municipios;
	private Long municipioId;
	
	private Usuario user = new Usuario();
	
	
	
	public String prepareAdicionarUsuario(){
		
		return "cadastroUsuarioTeste";
	}
	
	public void save(){

		//List<Municipio> mu =  (List<Municipio>) municSession.findById(Municipio.class, municipioId);
		user.setId(1);
		//user.setMunics(mu);
		
		try {
			session.save(user);
			FacesUtil.mensInfo("Usuário salvo com sucesso!");
		} catch (ValidacaoException e) {
			e.printStackTrace();
		}	
	}
	
	public Usuario getUser() {
		return user;
	}
	public void setUser(Usuario user) {
		this.user = user;
	}
	public List<Municipio> getMunicipios() {
		if(municipios == null){
			municipios = municSession.findAll(Municipio.class);
		}
		return municipios;
	}

	public Long getMunicipioId() {
		return municipioId;
	}

	public void setMunicipioId(Long municipioId) {
		this.municipioId = municipioId;
	}
}